Skip to content

Bump minimum normaliz version to 3.6.3 (autotools)#4437

Open
d-torrance wants to merge 1 commit into
Macaulay2:developmentfrom
d-torrance:normaliz
Open

Bump minimum normaliz version to 3.6.3 (autotools)#4437
d-torrance wants to merge 1 commit into
Macaulay2:developmentfrom
d-torrance:normaliz

Conversation

@d-torrance

Copy link
Copy Markdown
Member

This is when getLatticePoints() was added.

The build fails before this, e.g., in Ubuntu 18.04 (which has normaliz 3.5.1):

cytools/lattice-points-normaliz.cpp: In function ‘M2::cytools::LatticePointsNormalizResult M2::cytools::latticePointsNormaliz(int, const std::vector<std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> > >&, const std::vector<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >&)’:
cytools/lattice-points-normaliz.cpp:41:47: error: ‘LatticePoints’ is not a member of ‘libnormaliz::ConeProperty’
       cone.compute(libnormaliz::ConeProperty::LatticePoints);
                                               ^~~~~~~~~~~~~
cytools/lattice-points-normaliz.cpp:52:30: error: ‘class libnormaliz::Cone<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >’ has no member named ‘getLatticePoints’
       const auto& lps = cone.getLatticePoints();
                              ^~~~~~~~~~~~~~~~
cytools/lattice-points-normaliz.cpp:55:30: error: unable to deduce ‘auto&&’ from ‘lps’
       for (const auto& row : lps)
                              ^~~

@d-torrance d-torrance added the dependencies Pull requests that update a dependency file label Jun 11, 2026
@d-torrance

Copy link
Copy Markdown
Member Author

It looks like it needs to be a bit higher. I backported 3.6.2 to Ubuntu 18.04 and the unit tests failed:

LatticePointsTest.cpp:454: Failure
Expected equality of these values:
  r.points.size()
    Which is: 0
  9u
    Which is: 9
LatticePointsTest.cpp:455: Failure
Expected equality of these values:
  asIntSet(r)
    Which is: {}
  bruteForceAxLeqB(2, 1, A, b)
    Which is: { { -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, { 1, -1 }, { 1, 0 }, { 1, 1 } }
[  FAILED  ] LatticePointsNormaliz.BoxOnly_dim2_B1 (2 ms)
[ RUN      ] LatticePointsNormaliz.Simplex_dim2_B3
LatticePointsTest.cpp:465: Failure
Expected equality of these values:
  r.points.size()
    Which is: 0
  10u
    Which is: 10
LatticePointsTest.cpp:466: Failure
Expected equality of these values:
  asIntSet(r)
    Which is: {}
  bruteForceAxLeqB(2, 3, A, b)
    Which is: { { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 1, 0 }, { 1, 1 }, { 1, 2 }, { 2, 0 }, { 2, 1 }, { 3, 0 } }
[  FAILED  ] LatticePointsNormaliz.Simplex_dim2_B3 (1 ms)
[ RUN      ] LatticePointsNormaliz.MixedSignsAndRhs_with_box
LatticePointsTest.cpp:478: Failure
Expected equality of these values:
  asIntSet(r)
    Which is: {}
  bruteForceAxLeqB(2, 3, A, b)
    Which is: { { -3, -3 }, { -3, -2 }, { -3, -1 }, { -2, -3 }, { -2, -2 }, { -2, -1 }, { -1, -3 }, { -1, -2 }, { -1, -1 }, { -1, 0 }, { 0, -3 }, { 0, -2 }, { 0, -1 }, { 0, 0 }, { 1, -1 }, { 1, 0 }, { 1, 1 }, { 2, 1 } }
[  FAILED  ] LatticePointsNormaliz.MixedSignsAndRhs_with_box (2 ms)
[ RUN      ] LatticePointsNormaliz.AgreesWithBoxEnum_Simplex_dim3
LatticePointsTest.cpp:496: Failure
Expected equality of these values:
  rNm.points.size()
    Which is: 0
  20u
    Which is: 20
LatticePointsTest.cpp:499: Failure
Expected equality of these values:
  asIntSet(rNm)
    Which is: {}
  std::set<std::vector<int>>(rBox.points.begin(), rBox.points.end())
    Which is: { { 0, 0, 0 }, { 0, 0, 1 }, { 0, 0, 2 }, { 0, 0, 3 }, { 0, 1, 0 }, { 0, 1, 1 }, { 0, 1, 2 }, { 0, 2, 0 }, { 0, 2, 1 }, { 0, 3, 0 }, { 1, 0, 0 }, { 1, 0, 1 }, { 1, 0, 2 }, { 1, 1, 0 }, { 1, 1, 1 }, { 1, 2, 0 }, { 2, 0, 0 }, { 2, 0, 1 }, { 2, 1, 0 }, { 3, 0, 0 } }
[  FAILED  ] LatticePointsNormaliz.AgreesWithBoxEnum_Simplex_dim3 (3 ms)
[ RUN      ] LatticePointsNormaliz.Unbounded_Throws
[       OK ] LatticePointsNormaliz.Unbounded_Throws (1 ms)
[ RUN      ] LatticePointsNormaliz.UnboundedRay_Throws
[       OK ] LatticePointsNormaliz.UnboundedRay_Throws (0 ms)
[ RUN      ] LatticePointsNormaliz.BigInt_RhsAccepted
LatticePointsTest.cpp:554: Failure
Expected equality of these values:
  r.points.size()
    Which is: 0
  3u
    Which is: 3
[  FAILED  ] LatticePointsNormaliz.BigInt_RhsAccepted (1 ms)
[ RUN      ] LatticePointsNormaliz.ShapeMismatch_Throws
[       OK ] LatticePointsNormaliz.ShapeMismatch_Throws (0 ms)
[ RUN      ] LatticePointsNormaliz.RowLengthMismatch_Throws
[       OK ] LatticePointsNormaliz.RowLengthMismatch_Throws (0 ms)
[----------] 9 tests from LatticePointsNormaliz (11 ms total)

[----------] 6 tests from LatticePointsNormalizRaw
[ RUN      ] LatticePointsNormalizRaw.Simplex_dim2_B3
LatticePointsTest.cpp:590: Failure
Expected equality of these values:
  M->n_cols()
    Which is: 0
  10u
    Which is: 10
LatticePointsTest.cpp:591: Failure
Expected equality of these values:
  pointsAsSet(M)
    Which is: {}
  bruteForceAxLeqB(2, 3, A, b)
    Which is: { { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 1, 0 }, { 1, 1 }, { 1, 2 }, { 2, 0 }, { 2, 1 }, { 3, 0 } }
[  FAILED  ] LatticePointsNormalizRaw.Simplex_dim2_B3 (1 ms)
[ RUN      ] LatticePointsNormalizRaw.MatchesBoxEnumWrapper
LatticePointsTest.cpp:608: Failure
Expected equality of these values:
  pointsAsSet(M_box)
    Which is: { { -2, 2 }, { -1, 1 }, { -1, 2 }, { 0, 0 }, { 0, 1 }, { 0, 2 }, { 1, -1 }, { 1, 0 }, { 1, 1 }, { 1, 2 }, { 2, -2 }, { 2, -1 }, { 2, 0 }, { 2, 1 }, { 2, 2 } }
  pointsAsSet(M_nmz)
    Which is: {}
[  FAILED  ] LatticePointsNormalizRaw.MatchesBoxEnumWrapper (2 ms)
[ RUN      ] LatticePointsNormalizRaw.BigInt_b_Accepted
LatticePointsTest.cpp:633: Failure
Expected equality of these values:
  M->n_cols()
    Which is: 0
  1u
    Which is: 1
LatticePointsTest.cpp:635: Failure
Expected equality of these values:
  pointsAsSet(M)
    Which is: {}
  expected
    Which is: { { 0, 0 } }
[  FAILED  ] LatticePointsNormalizRaw.BigInt_b_Accepted (2 ms)
[ RUN      ] LatticePointsNormalizRaw.Unbounded_Errors
[       OK ] LatticePointsNormalizRaw.Unbounded_Errors (0 ms)
[ RUN      ] LatticePointsNormalizRaw.NonZZ_b_Errors
[       OK ] LatticePointsNormalizRaw.NonZZ_b_Errors (0 ms)
[ RUN      ] LatticePointsNormalizRaw.WrongShape_b_Errors
[       OK ] LatticePointsNormalizRaw.WrongShape_b_Errors (0 ms)
[----------] 6 tests from LatticePointsNormalizRaw (6 ms total)

[----------] Global test environment tear-down
[==========] 257 tests from 51 test suites ran. (1174 ms total)
[  PASSED  ] 249 tests.
[  FAILED  ] 8 tests, listed below:
[  FAILED  ] LatticePointsNormaliz.BoxOnly_dim2_B1
[  FAILED  ] LatticePointsNormaliz.Simplex_dim2_B3
[  FAILED  ] LatticePointsNormaliz.MixedSignsAndRhs_with_box
[  FAILED  ] LatticePointsNormaliz.AgreesWithBoxEnum_Simplex_dim3
[  FAILED  ] LatticePointsNormaliz.BigInt_RhsAccepted
[  FAILED  ] LatticePointsNormalizRaw.Simplex_dim2_B3
[  FAILED  ] LatticePointsNormalizRaw.MatchesBoxEnumWrapper
[  FAILED  ] LatticePointsNormalizRaw.BigInt_b_Accepted

 8 FAILED TESTS

@d-torrance d-torrance marked this pull request as draft June 12, 2026 16:11
@d-torrance

d-torrance commented Jun 12, 2026

Copy link
Copy Markdown
Member Author

According to Claude, 3.6.3 should work. I'll backport that to 18.04 for the PPA and report back

Edit: Confirmed -- everything passes with 3.6.3

This is when the inhomogeneous case of getLatticePoints(), which we
now need, was added.
@d-torrance d-torrance changed the title Bump minimum normaliz version to 3.6.1 (autotools) Bump minimum normaliz version to 3.6.3 (autotools) Jun 13, 2026
@d-torrance d-torrance marked this pull request as ready for review June 13, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant